#include <stdio.h>
#include <stdlib.h> //exit 函数头文件
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(){
	//execlp函数
    extern char** environ;     // 环境变量的指针声明
    printf("我是父进程，我的PID是： %d\n", getpid());
	pid_t id=fork();
	if(id==0){
		printf("我是子进程，我的PID是： %d\n",getpid());
		execle("./mycmd","mycmd", NULL, environ);//程序替换
		printf("还可以调用吗？");
		exit(-1);
	}
  int status = 0;
  waitpid(id, &status, 0);  //等待阻塞
  if(WIFEXITED(status)) {  //正常退出
    printf("子进程替换成功，exit code:%d\n", WEXITSTATUS(status));
} 
else {  //异常终止
    printf("子进程异常终止，exit signal:%d\n",WIFEXITED(status));
}

  return 0;
  }
